import {defineStore} from "pinia"

export const useCart = defineStore('cart',{
    state(){
        return {
            cartData:[]
        }
    },
    actions:{
        // 添加数据
        add_cart(current){
            // 判断cartData中是否有传递来的值
            let target = this.cartData.find(item => item.id===current.id)
            if(!target){
                let obj = {
                    title:current.title,
                    price:current.price,
                    count:1,
                    id:current.id
                }
                this.cartData.push(obj)
            }else{
                target.count++
            }
            
        },
        // 删除购物车
        del_cart(current){
            // 找到cartData中的目标删除数据
            let target = this.cartData.find(item => {
                if(item.id===current.id && item.count>0){
                    item.count--
                }
                return item
            })
            // console.log(target)
            // 当要删除的数据为0时，将他从cartData中整个删掉
            if(target.count===0){
                this.cartData = this.cartData.filter(item => item.id!==target.id)
                console.log(this.cartData)

            }
        }
    },
    getters:{
        total(state){
            // 利用数组的方法reduce计算购物车中商品的总价格
            let total =  (state.cartData.reduce((total,item)=>{
                return total+=item.price*item.count
            },0)).toFixed(2)
            return total
        }
    }
}) 